$(function(){
	/*页面打开前加载数据*/
	$(document).ready(function () {
		hide();
		loadProject();
		/*开始时没选中数据源让单选框不可选中*/
		if($("#dataType").val()=="请选择数据源"){
			$(":radio[name=properties]").attr("disabled","true");
		}
	});	
	
	/*选择了数据源就让单选框可以点击*/
	$("#dataType").change(function(){
		if($("#dataType").val()=="请选择数据源"){
			hide();
			$(":radio").attr("disabled","true");
		}else{
			$(":radio").attr("disabled",null);
		}
	});
	
	/*单选框触发事件*/
	$(":radio[name=properties]").click(function(){
		var data = $("#dataType").val();
		if($(this).val()=="dev"){
			$("#" + data + "_param").show();
			$("#" + data + "_param_profile").hide();
		}else{
			$("#" + data + "_param").hide();
			$("#" + data + "_param_profile").show();
		}
	});
	
	/*单选框触发事件*/
	$(":radio[name=update_properties]").click(function(){
		var data = $("#dataCenterType").val();
		if($(this).val()=="dev"){
			$("#update_" + data).show();
			$("#update_" + data + "_profile").hide();
		}else{
			$("#update_" + data).hide();
			$("#update_" + data + "_profile").show();
		}
	});
	
	/*更新工程信息*/
	$(document).on("click","#updatePro",function(){
		var id = $(this).attr("value");
		findPro(id);
	});
	
	/*搜索project*/
	$(document).on("click","#searchPro",function(){
		loadProject();
	});
	
	/*生成代码并下载*/
	$(document).on("click","#makeCode",function(){
		var id = $(this).attr("value");
		makeCode_download(id);
		
	});
	/*swagger预览*/
	$(document).on("click","#explore",function(){
		var id = $(this).attr("value");
		explore(id);
		
	});
	
	/*文档预览*/
	$(document).on("click","#overview",function(){
		var id = $(this).attr("value");
		alert(id);
	});
	
	/*生成代码并部署*/
	$(document).on("click","#makeWar",function(){
		var id = $(this).attr("value");
		makeCode_war(id);
	});
	
	$(document).on("change","#textOnly",function(){
		var state = $(this).prop("checked");
		if(state){
			$("#data").hide();
			$("#package").hide();
			$("#hbase_param").hide();
			$("#mysql_param").hide();
			$("#redis_param").hide();
			$("#oracle_param").hide();
		}else{
			$("#data").show();
			$("#package").show();
		}
	});
}) 

function hide(){
$("#hbase_param").hide();
$("#mysql_param").hide();
$("#redis_param").hide();
$("#oracle_param").hide();
$("#hbase_param_profile").hide();
$("#mysql_param_profile").hide();
$("#redis_param_profile").hide();
$("#oracle_param_profile").hide();
}

/*
 * 加载数据
 */
function loadProject(){
	var url = ctx + "/project/list";
	var condition = $("#condition").val();
	var userId = $("#userId").val();
	var downloadCoad  = $("#download").val();
	var json = {pageable:"pageable",condition:condition,userId:userId};
	jqList.query(url,json, function(data){
		if(data.code == 200){
			var itemsHtml = '';
        	var len = data.list.length;
			if(len == 0){
				itemsHtml = '<tr><td colspan="8">无数据...</td></tr>';
			}
			for(var i=0; i<len; i++){
        		(function(){
        			var pro = data.list[i];
        			var id = pro.id;
        			
        			var proDate = new Date(pro.createDate).Format("yyyy-MM-dd hh:mm:ss");
        			itemsHtml += '<tr>'+
        							'<td>'+(i+1)+'</td>'+
        							'<td><a href="'+ctx+'/project/'+pro.id+'/api" style="text-decoration:underline;">'+pro.name+'</a></td>'+
        							'<td>'+pro.code+'</td>'+
        							/*'<td>'+pro.context+'</td>'+*/
        							'<td>'+pro.version+'</td>'+
        							/*'<td>'+pro.description+'</td>'+*/
        							'<td>'+proDate+'</td>'+
        							'<td><a id="updatePro" class="btn btn-primary btn-sm" value="'+pro.id+'" href="javascript:void(0);" data-toggle="modal" data-target="#updateProModal" style="position: absolute;margin-top: -5px;margin-left: -120px;"><span class="glyphicon glyphicon-edit"></span>修改</a>'+
        							'<a id="makeCode" class="btn btn-primary btn-sm" value="'+pro.id+'" href="javascript:void(0);" style="position: absolute;margin-top: -5px;margin-left: -60px;"><span class="glyphicon glyphicon-download-alt"></span>下载</a>'+
        							'<a id="explore" class="btn btn-primary btn-sm" value="'+pro.id+'" href="javascript:void(0);" style="position: absolute;margin-top: -5px;margin-left: 0px;"><span class="glyphicon glyphicon-eye-open"></span>预览</a>'+
        							/*'<a id="makeWar" class="btn btn-primary btn-sm" value="'+pro.id+'" href="javascript:void(0);" style="position: absolute;margin-top: -5px;margin-left: 29px;" data-toggle="tooltip" data-placement="top" title="部署时间略长，请耐心等待。"><span class="glyphicon glyphicon-time"></span>部署</a>'+*/
        							'<a class="btn btn-danger btn-sm" onClick="delProject('+pro.id+')" style="position: absolute;margin-top: -5px;margin-left: 60px;"><span class="glyphicon glyphicon-trash"></span>删除</a>'+
        							'</td>'+
        						 '</tr>'
        							
     
        						
        			})(i);
        	
        		}
			$('#proList').html(itemsHtml);
			
		}
	});
}
/*
 * 查询要更新的project
 */
function findPro(id){
	$.ajax({
		type: 'POST',
		url: ctx + '/project/findOne',
		data: {id:id},
		dataType:'json',
		success:function(data){
			if(data.code == 200){
				$("#update_hbase").hide();
				$("#update_hbase_profile").hide();
				$("#update_mysql").hide();
				$("#update_mysql_profile").hide();
				$("#update_redis").hide();
				$("#update_redis_profile").hide();
				$("#update_oracle").hide();
				$("#update_oracle_profile").hide();
				var pro = data.project;
				$("#proId").val(id);
				$("#name").val(pro.name);
				$("#code").val(pro.code);
				$("#context").val(pro.context);
				$("#version").val(pro.version);
				$("#packageName").val(pro.packageName);
				$("#description").val(pro.description);
				$("#dataCenterType").val(pro.dataCenterType);
				$("#rootUrl").val(pro.rootUrl);
				if(pro.textOnly){
					$("#update_data").hide();
					$("#update_package").hide();
				}else{
				$("#root").show();
				$("#update_data").show();
				$("#update_package").show();
				if(pro.dataCenterType=='hbase'){
					$("#update_hbase").show();
					$("#zkQuorum").val(pro.zkQuorum);
					$("#zkPort").val(pro.zkClientPort);
					$("#zkParent").val(pro.zkParent);
					$("#zkQuorum_profile").val(pro.zkQuorum_profile);
					$("#zkPort_profile").val(pro.zkClientPort_profile);
					$("#zkParent_profile").val(pro.zkParent_profile);
				}
				if(pro.dataCenterType=='mysql'){
					$("#update_mysql").show();
					$("#mysqlUrl_update").val(pro.mysqlUrl);
					$("#mysqlUsername_update").val(pro.mysqlUsername);
					$("#mysqlPassword_update").val(pro.mysqlPassword);
					$("#mysqlUrl_update_profile").val(pro.mysqlUrl_profile);
					$("#mysqlUsername_update_profile").val(pro.mysqlUsername_profile);
					$("#mysqlPassword_update_profile").val(pro.mysqlPassword_profile);
				}
				if(pro.dataCenterType=='redis'){
					$("#update_redis").show();
					$("#redisIp_update").val(pro.redisIp);
					$("#redisPort_update").val(pro.redisPort);
					$("#redisParent_update").val(pro.redisParent);
					$("#redisIp_update_profile").val(pro.redisIp_profile);
					$("#redisPort_update_profile").val(pro.redisPort_profile);
					$("#redisParent_update_profile").val(pro.redisParent_profile);
				}
				if(pro.dataCenterType=='oracle'){
					$("#update_oracle").show();
					$("#jdbcUrl_update").val(pro.jdbcUrl);
					$("#oracleUsername_update").val(pro.oracleUsername);
					$("#oraclePassword_update").val(pro.oraclePassword);
					$("#jdbcUrl_update_profile").val(pro.jdbcUrl_profile);
					$("#oracleUsername_update_profile").val(pro.oracleUsername_profile);
					$("#oraclePassword_update_profile").val(pro.oraclePassword_profile);
				}
				
				}
			}
		}
	})
};
/*
 * 删除project
 */
function delProject(id){
	confirm_tip("确定删除？",function(flag){
		if(flag==1){
			$.ajax({
				type: 'POST',
				dataType:'json',
				url: ctx + '/project/delete',
				data: {id:id},
				success:function(data){
					if(data.code == 200){
						window.location.href= ctx + '/project';
					}
				}
			});
		}
	});
}

/*
 * 生成代码并下载
 */
function makeCode_download(id){
	$.ajax({
		type: 'POST',
		dataType:'json',
		url: ctx + '/project/buildProject/'+ id,
		data: {id:id},
		success:function(data){
			if(data.code == 200){
				window.location.href = ctx + "/download?id=" + id;
			}
		}
	});
}
function explore(id){
	 window.open(ctx+"/preview.htm?id="+id);
	
}
/*
 * 生成代码并打包
 */
function makeCode_war(id){
	$.ajax({
		type: 'POST',
		dataType:'json',
		url: ctx + '/project/buildProject/'+ id,
		data: {id:id},
		success:function(data){
			if(data.code == 200){
				makeWar(id);
			}
		}
	});
}

/*
 * 生成war包
 */
function makeWar(id){
	$.ajax({
		type: 'POST',
		dataType:'json',
		url: ctx + '/project/buildPackage/' + id,
		data: {id:id},
		success:function(data){
			if(data.code == 200)
			confirm_info("war包已部署！");
		}
	});
}
/*
 * 编码格式校验
 */
function checkStyle(id){
	var id1 = $(id).attr("id");
	var regex = /^[a-zA-Z]{0,18}$/g;
	var name = $(id).val();
	if(regex.test(name)){
		post(id);
	}else{
		 $("#"+ id1 +"1").html("您输入的不符合规范");
 	 }
}
/*
 * 包名格式校验
 */
function checkPackage(id){
	var id1 = $(id).attr("id");
	var regex = /^[a-z\.]{0,30}$/g;
	var name = $(id).val();
	if(regex.test(name)){
		post(id);
	}else{
		 $("#"+ id1 +"1").html("您输入的不符合规范");
 	 }
}



/*
 * 重名校验
 */
function post(id) {
	 var id1 = $(id).attr("id");
	 var userId = $("#userId").val();
	 var name = $(id).val();
		 $.ajax({
	         type:'POST',
	         url: ctx + '/project/checkName',
	         data: {name:name,userId:userId,id:id1},
	         success:function(data){
	        	 if(data.code==100){
	        		 $("#"+ id1 +"1").html(name + "已存在");
	        	 }else{
	        		 $("#"+ id1 +"1").html("");
	        	 }
	         }
	     }) ; 
}
/*
 * 新增时选择数据源 
 */
function doit(){
	var sel_val=$("#dataType").val();
	$(":radio[name=properties][value=profile]").removeAttr("checked");
	$(":radio[name=properties][value=dev]").attr("checked",true);
	if(sel_val=='hbase'){
		$("#hbase_param").show();
		$("#hbase_param_profile").hide();
		$("#mysql_param").hide();
		$("#mysql_param_profile").hide();
		$("#redis_param").hide();
		$("#redis_param_profile").hide();
		$("#oracle_param").hide();
		$("#oracle_param_profile").hide();
	}
	if (sel_val=='mysql') {
		$("#mysql_param").show();
		$("#mysql_param_profile").hide();
		$("#redis_param").hide();
		$("#redis_param_profile").hide();
		$("#hbase_param").hide();
		$("#hbase_param_profile").hide();
		$("#oracle_param").hide();
		$("#oracle_param_profile").hide();
	}
	if(sel_val=='redis'){
		$("#redis_param").show();
		$("#redis_param_profile").hide();
		$("#hbase_param").hide();
		$("#hbase_param_profile").hide();
		$("#mysql_param").hide();
		$("#mysql_param_profile").hide();
		$("#oracle_param").hide();
		$("#oracle_param_profile").hide();
	}
	if (sel_val=='oracle') {
		$("#oracle_param").show();
		$("#oracle_param_profile").hide();
		$("#redis_param").hide();
		$("#redis_param_profile").hide();
		$("#hbase_param").hide();
		$("#hbase_param_profile").hide();
		$("#mysql_param").hide();
		$("#mysql_param_profile").hide();
	}
}

/*
 * 更新时选择数据源
 */
function doit1(){
		var sel_val=$("#dataCenterType").val();
		if (sel_val=='hbase'){
			$("#update_hbase").show();
			$("#update_mysql").hide();
			$("#update_redis").hide();
			$("#update_oracle").hide();
			$("#zkQuorum").val("");
			$("#zkPort").val("");
			$("#zkParent").val("");
		}
		if (sel_val=='mysql') {
			$("#update_mysql").show();
			$("#update_hbase").hide();
			$("#update_hbase_profile").hide();
			$("#update_redis").hide();
			$("#update_oracle").hide();
			$("#mysqlUrl_update").val("");
			$("#mysqlUsername_update").val("");
			$("#mysqlPassword_update").val("");
		}
		if (sel_val=='redis') {
			$("#update_redis").show();
			$("#update_mysql").hide();
			$("#update_hbase").hide();
			$("#update_oracle").hide();
			$("#redisIp_update").val("");
			$("#redisPort_update").val("");
			$("#redisParent_update").val("");
		}
		if (sel_val=='oracle') {
			$("#update_oracle").show();
			$("#update_redis").hide();
			$("#update_mysql").hide();
			$("#update_hbase").hide();
			
		}
}

/*
 * ip地址格式校验
 */
function checkURL(id){
	var id1 = $(id).attr("id");
	/*var regex = /^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/;*/
	var regex = /^([0-9\.\,]{0,100})$/;
	var name = $(id).val();
	if(!regex.test(name)){
		 $("#"+ id1 +"1").html("您输入的不符合规范");
 	 }else{
 		$("#"+ id1 +"1").html("");
 	 }
}
/*
 * 端口号格式校验
 */
function checkPort(id){
	var id1 = $(id).attr("id");
	var regex = /^([0-9]{4})$/;
	var name = $(id).val();
	if(!regex.test(name)){
		 $("#"+ id1 +"1").html("您输入的不符合规范");
 	 }else{
 		$("#"+ id1 +"1").html("");
 	 }
}
/*
 * parent格式校验
 */
function checkParent(id){
	var id1 = $(id).attr("id");
	var regex = /^([a-z/_]{0,10})$/;
	var name = $(id).val();
	if(!regex.test(name)){
		 $("#"+ id1 +"1").html("您输入的不符合规范");
 	 }else{
 		$("#"+ id1 +"1").html("");
 	 }
}